home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / dev / gcc / ixemsdk.lha / man / cat3 / hash.0 < prev    next >
Text File  |  1996-09-02  |  5KB  |  133 lines

  1.  
  2.  
  3.  
  4. HASH(3)                                                   HASH(3)
  5.  
  6.  
  7. NNAAMMEE
  8.        hash - hash database access method
  9.  
  10. SSYYNNOOPPSSIISS
  11.        ##iinncclluuddee <<ssyyss//ttyyppeess..hh>>
  12.        ##iinncclluuddee <<ddbb..hh>>
  13.  
  14. DDEESSCCRRIIPPTTIIOONN
  15.        The  routine  _d_b_o_p_e_n  is the library interface to database
  16.        files.  One of the supported file formats is  hash  files.
  17.        The  general description of the database access methods is
  18.        in _d_b_o_p_e_n(3), this manual page  describes  only  the  hash
  19.        specific information.
  20.  
  21.        The  hash data structure is an extensible, dynamic hashing
  22.        scheme.
  23.  
  24.        The access method  specific  data  structure  provided  to
  25.        _d_b_o_p_e_n is defined in the <db.h> include file as follows:
  26.  
  27.        typedef struct {
  28.               u_int bsize;
  29.               u_int ffactor;
  30.               u_int nelem;
  31.               u_int cachesize;
  32.               u_int32_t (*hash)(const void *, size_t);
  33.               int lorder;
  34.        } HASHINFO;
  35.  
  36.        The elements of this structure are as follows:
  37.  
  38.        bsize  _B_s_i_z_e  defines  the hash table bucket size, and is,
  39.               by default, 256 bytes.  It  may  be  preferable  to
  40.               increase the page size for disk-resident tables and
  41.               tables with large data items.
  42.  
  43.        ffactor
  44.               _F_f_a_c_t_o_r indicates a desired density within the hash
  45.               table.   It  is  an  approximation of the number of
  46.               keys allowed  to  accumulate  in  any  one  bucket,
  47.               determining  when  the hash table grows or shrinks.
  48.               The default value is 8.
  49.  
  50.        nelem  _N_e_l_e_m is an estimate of the final size of the  hash
  51.               table.  If not set or set too low, hash tables will
  52.               expand gracefully as keys are entered,  although  a
  53.               slight performance degradation may be noticed.  The
  54.               default value is 1.
  55.  
  56.        cachesize
  57.               A suggested maximum size, in bytes, of  the  memory
  58.               cache.  This value is oonnllyy advisory, and the access
  59.               method will allocate more memory rather than  fail.
  60.  
  61.  
  62.  
  63.  
  64.                         February 21, 1994                       1
  65.  
  66.  
  67.  
  68.  
  69.  
  70. HASH(3)                                                   HASH(3)
  71.  
  72.  
  73.        hash   _H_a_s_h  is  a  user  defined hash function.  Since no
  74.               hash function performs equally well on all possible
  75.               data,  the  user  may  find  that the built-in hash
  76.               function does poorly  on  a  particular  data  set.
  77.               User  specified  hash functions must take two argu-
  78.               ments (a pointer to a byte string and a length) and
  79.               return  a  32-bit  quantity  to be used as the hash
  80.               value.
  81.  
  82.        lorder The byte order for integers in the stored  database
  83.               metadata.  The number should represent the order as
  84.               an integer; for example, big endian order would  be
  85.               the  number  4,321.   If  _l_o_r_d_e_r  is 0 (no order is
  86.               specified) the current host order is used.  If  the
  87.               file already exists, the specified value is ignored
  88.               and the value specified when the tree  was  created
  89.               is used.
  90.  
  91.        If  the  file  already exists (and the O_TRUNC flag is not
  92.        specified), the values specified for the parameters bsize,
  93.        ffactor, lorder and nelem are ignored and the values spec-
  94.        ified when the tree was created are used.
  95.  
  96.        If a hash function is specified, _h_a_s_h___o_p_e_n will attempt to
  97.        determine  if  the  hash function specified is the same as
  98.        the one with which the database was created, and will fail
  99.        if it is not.
  100.  
  101.        Backward  compatible  interfaces to the routines described
  102.        in _d_b_m(3), and _n_d_b_m(3) are provided, however these  inter-
  103.        faces are not compatible with previous file formats.
  104.  
  105. SSEEEE AALLSSOO
  106.        _b_t_r_e_e(3), _d_b_o_p_e_n(3), _m_p_o_o_l(3), _r_e_c_n_o(3)
  107.  
  108.        _D_y_n_a_m_i_c _H_a_s_h _T_a_b_l_e_s, Per-Ake Larson, Communications of the
  109.        ACM, April 1988.
  110.  
  111.        _A _N_e_w _H_a_s_h _P_a_c_k_a_g_e _f_o_r _U_N_I_X, Margo  Seltzer,  USENIX  Pro-
  112.        ceedings, Winter 1991.
  113.  
  114. BBUUGGSS
  115.        Only big and little endian byte order is supported.
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.                         February 21, 1994                       2
  131.  
  132.  
  133.